#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>

int main()
{
    int N, a[1001] = { 0 }, t, i;
    int count = 0;
    while (scanf("%d", &N) != EOF)
    {
        for (i = 0; i < N; i++)
        {
            scanf("%d", &t);
            if (a[t] == 0) {
                a[t] = t;
                count++;
            }
        }
        printf("%d\n", count);
        for (i = 0; i < 1001; i++) {
            if (a[i] != 0)
                printf("%d ", a[i]);
        }
    }
    return 0;
}


#if 0
# include <stdio.h>
int move(int n, char x, char y, char z)
{
    if (n == 1)
        printf("%d %c %c\n", n, x, z);
    else
    {
        move(n - 1, x, z, y);
        printf("%d %c %c\n", n, x, z);
        move(n - 1, y, x, z);
    }
    return 0;
}
int main()
{
    int n;
    scanf("%d", &n);
    move(n, 'A', 'B', 'C');
    return 0;
}
#endif

//#include <stdio.h>
//#include<string.h>
//
//void EncryptChar(char st[], int n) {
//    int i;
//    for (i = 0; i < n; i++) 
//    {
//        if (st[i] == 'Z')
//            st[i] = 'a';
//        else if (st[i] == 'z')
//            st[i] = 'A';
//        else {
//            st[i] = st[i] + 1;
//        }
//    }
//}
//
//int main()
//{
//    char st[1001];
//    gets(st);
//    int n = strlen(st);
//    EncryptChar(st, n);
//    puts(st);
//    return 0;
//}


//#include <iostream>
//#include <cmath>
//using namespace std;
//int main() {
//    int n;
//    double sal, sum;
//    cin >> n >> sal;
//    sum = min(40, n) * sal + min(10, max(0, n - 40)) * sal * 1.5 + max(0, n - 50) * sal * 2;
//    printf("%.2f", sum);
//    return 0;
//}

//#include<stdio.h> 
//#include<string.h>
//
//void EncryptChar(char a[], int n)
//{
//	int i;
//	for (i = 0; i < n; i++)
//	{
//		if (a[i] >= 'A' && a[i] <= 'Z')
//		{
//			if (a[i] == 'Z')
//			{
//				a[i] = 'a';
//				continue;
//			}
//			a[i] += 1;
//		}
//		else if (a[i] >= 'a' && a[i] <= 'z')
//		{
//			if (a[i] == 'z')
//			{
//				a[i] = 'A';
//				continue;
//			}
//			a[i] += 1;
//		}
//	}
//}
//int main()
//{
//	char a[51];
//	int i;
//	scanf("%s", a);
//	EncryptChar(a, strlen(a));
//	printf("%s", a);
//	return 0;
//}


#if 0
#include <stdio.h>
double qnum(int s, double  num)
{
    if (s <= 40)
    {
        return s * num;
    }
    if (s >= 40 && s <= 50)
    {
        return 40 * num + (s - 40) * 1.5 * num;
    }
    if (s > 50)
    {
        return 40 * num + 10 * 1.5 * num + (s - 50) * 2 * num;
    }
}

int main( ) 
{
    int s; 
    double num;
    while (scanf("%d%lf", &s, &num) != EOF) 
    {
        printf("%.2lf\n", qnum(s, num));
    }
    return 0;
}
#endif


#if 0
#include <stdio.h>

int main()
{
    char s[1000];
    char ch;
    int i = 0, j = 0;
    gets(s);
    scanf("%c", &ch);
    while (s[i] != 0)
    {
        if (s[i] != ch)
            s[j++] = s[i];
        i++;
    }
    s[j] = 0;
    printf("%s", s);
    return 0;
}
#endif
